// Launchy.cpp : Defines the class behaviors for the application.
//
	
#include "stdafx.h"
#include "Launchy.h"
#include "LaunchyDlg.h"
//#include "SingleInstanceApp.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CLaunchyApp

BEGIN_MESSAGE_MAP(CLaunchyApp, CWinApp)
	ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()


// CLaunchyApp construction

CLaunchyApp::CLaunchyApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance


}


// The one and only CLaunchyApp object

CLaunchyApp theApp;


CString searchTxt;
CStringArray SearchStrings;
int SearchPluginID;
FileRecordPtr TabbedMatch;

// CLaunchyApp initialization


//CLimitSingleInstance g_SingleInstanceObj(TEXT("Global\\{ASDSAD0-DCC6-49b5-9C61-ASDSADIIIJJL}"));

BOOL CLaunchyApp::InitInstance()
{
	// InitCommonControlsEx() is required on Windows XP if an application
	// manifest specifies use of ComCtl32.dll version 6 or later to enable
	// visual styles.  Otherwise, any window creation will fail.
	INITCOMMONCONTROLSEX InitCtrls;
	InitCtrls.dwSize = sizeof(InitCtrls);
	// Set this to include all the common control classes you want to use
	// in your application.
	InitCtrls.dwICC = ICC_WIN95_CLASSES;
	InitCommonControlsEx(&InitCtrls);

	CWinApp::InitInstance();
	

	//int numArgs;
	//LPWSTR*  strings = CommandLineToArgvW(GetCommandLine(), &numArgs);
	//bool waited = false;



	//if (numArgs >= 2) {
	//	CString arg1 = strings[1];

	//	if (arg1 == L"/wait") {
	//		// Another instance of Launchy is closing, wait to go any further
	//		WaitForSingleObject(g_SingleInstanceObj.m_hMutex, INFINITE);
	//		waited = true;
	//	}
	//}


 //   if (!waited && g_SingleInstanceObj.IsAnotherInstanceRunning())
 //      return FALSE; 

	// Create application mutexes so that installer knows when
	// Launchy is running
//	HANDLE m1 = CreateMutex(NULL,0,_T("LaunchyMutex"));
//	HANDLE mg1 = CreateMutex(NULL,0,_T("Global\\LaunchyMutex"));

	// Standard initialization
	// If you are not using these features and wish to reduce the size
	// of your final executable, you should remove from the following
	// the specific initialization routines you do not need
	// Change the registry key under which our settings are stored
	// TODO: You should modify this string to be something appropriate
	// such as the name of your company or organization
	SetRegistryKey(_T("Launchy"));

	CLaunchyDlg dlg;
	m_pMainWnd = &dlg;



	INT_PTR nResponse = dlg.DoModal();
	if (nResponse == IDOK)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with OK
	}
	else if (nResponse == IDCANCEL)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with Cancel
	}

//	CloseHandle(m1); //Do as late as possible.
//	CloseHandle(mg1);

	// Since the dialog has been closed, return FALSE so that we exit the
	//  application, rather than start the application's message pump.
	return FALSE;
}
